1. Technical Field
The invention relates to data processing, and more particularly relates to data processing systems having two or more levels of data storage in a data storage system. Still more particularly, the invention relates to a method of caching data from a lower level of storage on a higher level of storage both as individual records and in whole tracks.
2. Description of the Related Art
Common architectures for computers have two or more levels of storage for data and provide for direct processor access to data resident in faster, smaller memory in the upper levels. A second level of data storage is generally much larger but slower than memory and generally contains copies of virtually all records and programs used on a computer.
Main frame computer systems generally use auxiliary storage devices in the lower levels. In auxiliary storage devices data is recorded by making a physical change to a medium. Examples of physical storage of data on media are: pitting of aluminum by lasers; grooving of plastic disk by a needle; and forming magnetic domains on a magnetic surface with an electromagnet. A transducer can then be used to sense the physical qualities of the media and to produce an electrical signal which varies in correspondence to the physical qualities of the media. For a data processing system, the electrical signal is decoded to reproduce binary data.
Direct Access Storage Devices (DASD, pronounced "dasdee") are one type of auxiliary storage device. In a direct access storage device access time to data is independent of the location of the data in the storage device. Presently, disk drive units are the most common type of DASD. A disk drive unit records data on rotatable disks. The write and read transducers are moved radially inward and outward relative to the disk as the disk is rotated to bring any location of the disk and the appropriate transducer into proximity with one another.
The fact that access time to a location on a disk is more or less random does not mean that it is instantaneous. During a period when a DASD waits for a spinning disk to move to the correct position for a transducer to access a location, a storage controller for the DASD can perform other functions. An example of a function performed during a waiting period is the downloading of data from a buffer memory to a channel to a host computer. In large, multiple computer data processing systems, such as those serving airline reservation systems, a large number of direct access storage devices serve several computers. The storage controller is logically positioned between the DASDs and the host computers. The storage controller handles connection and disconnection between a particular computer and magnetic disk unit for transfer of data.
The IBM 3990 storage controller is an example of a storage controller used to control connections between magnetic disk units and host computers. The IBM 3990 Model 3 type controller, which is available from IBM Corporation, can handle up to sixteen channels from host computers and up to sixty-four magnetic storage units. Within the storage controller are two multipath storage directors and four storage paths, two of which are associated with each multipath storage director. Each multipath storage director may be connected to up to eight incoming channels from host computers, for a total of sixteen channels for the storage controller as a whole. Each multipath storage director is connected to two storage paths, thus functioning as an 8.times.2 switch.
Channels are physical links between the storage controller and the host computers. Usually, a host computer has two or four channels, half being physically connected to the one multipath storage director and the other half being connected to the other multipath storage director. Each storage path leads to all of the available magnetic disk units. Upon indication that a disk is ready, the controller can secure any one of a plurality of the channels and storage paths back to a host to establish a data path.
Each storage path is in effect a stand alone control unit based upon its own microprocessor. The storage paths share control information through a common memory space for synchronization functions relating to handling connections, disconnections and reconnections relating to a transaction. Each storage path in a storage control unit has access to two addressable memory devices used for supporting storage control unit operation. The memory devices are a shared control array (SCA) and a cache.
Cache is best known for its application as an adjunct to computer memory. Cache is used as a high speed storage for frequently accessed instructions and data. The length of time since last use of a record is used as an indicator of frequency of use in determining continued residency in cache. In main computer memory, program data has to be released before data competing for space can gain access. In cache, competition for space results in data falling out of the cache when they become the least recently used data. While infrequently accessed data periodically enter cache, they will tend to "age" and fall out of cache. The contents of cache are duplicated in system memory. Various data structures must be maintained to operate a memory device as a cache memory. A primary logical data structure used for the functions is a doubly chained most recently used/least recently used list for records.
Storage controller cache performs an analogous function between direct access storage devices and host computers. Reading data from (and writing data to) the magnetic media of the direct access storage devices is fairly time consuming. Among the factors slowing the read and write operations are time required for the magnetic disk to come to the appropriate position and the limited bandwidth of the magnetic transducers used to read and write the data. By placing frequently accessed records in cache, access time for data and connection time by host computers is reduced and data storage system throughput is considerably enhanced. Because high speed components are expensive in terms of cost per byte of storage, particularly when compared with magnetic media storage cache is quite small compared to the memory device for which it acts as a buffer.
In the IBM 3990 Model storage controller, data is conventionally stored to storage controller cache by track images. In fast write operations, each track image corresponds to the contents of a physical track from a direct access storage device. Where a track image is present in cache, a write command from a host computer updating a record of the track results in the record being written over the corresponding record in the track image rather than to DASD. Time is saved over waiting for the disk to come to the correct position for direct transfer of the data from the host computer. Then, as a background process, the storage controller can transfer data from cache to disk to update a record.
However, the storage of whole track images in storage controller cache is inefficient in terms of storage capacity utilization in some applications. Another approach has been to cache records, which reduces internal fragmentation in the cache at the expense of greater complexity in data structures required. Certain performance advantages go with each approach to caching. Caching systems which worked both with tracks and records have been avoided as promising excessive complexity.